专利摘要:
Method and apparatus for processing video signal. A method for decoding a video signal in accordance with the present invention may comprise: decoding information indicating whether lighting compensation is performed for a current block, determining a lighting compensation parameter of the current block when the information indicates that the compensation lighting is performed for the current block, getting a prediction block by performing inter-prediction for the current block, and performing lighting compensation on the current block using the lighting compensation parameter. (Machine-translation by Google Translate, not legally binding)
公开号:ES2830053A2
申请号:ES202130414
申请日:2017-06-30
公开日:2021-06-02
发明作者:Bae Keun Lee
申请人:KT Corp;
IPC主号:
专利说明:

[0004] Technical field
[0005] The present invention relates to a method and apparatus for processing video signal.
[0007] Background of the technique
[0008] Lately, the demands for high quality and high resolution images such as high definition (HD) and ultra high definition (UHD) images have increased in various fields of application. However, higher resolution and quality image data has increased the amounts of data compared to conventional image data. Therefore, when transmitting image data using a medium such as conventional wired and wireless broadband networks, or when storing image data using conventional storage medium, transmission and storage costs increase. To solve these problems that occur with increasing resolution and quality in the image data, high-efficiency image encoding / decoding techniques can be used.
[0009] Image compression technology includes various techniques, including: an inter-prediction technique of predicting a pixel value included in a current image from a previous or subsequent image of the current image; an intra-prediction technique of predicting a pixel value included in a current image using pixel information in the current image; an entropy coding technique of assigning a short code to a value with a high occurrence frequency and assigning a long code to a value with a low occurrence frequency; etc. Image data can be efficiently compressed using such image compression technology, and can be transmitted or stored.
[0010] Meanwhile, with demands for high resolution imaging, the demands for stereographic imaging content, which is a new imaging service, have also increased. A video signal compression technique to efficiently deliver ultra-high resolution and high resolution stereographic image content is being discussed.
[0011] Divulgation
[0012] Technical problem
[0013] An object of the present invention seeks to provide a method and apparatus for efficiently performing inter-prediction for a target encoding / decoding block in encoding / decoding a video signal.
[0014] An object of the present invention is to provide a method and apparatus for compensating a prediction sample in consideration of a change in luminance between images.
[0015] An object of the present invention aims to provide a method and apparatus for efficiently encoding / decoding an illumination compensation parameter in video signal encoding / decoding.
[0016] The technical objects to be achieved by the present invention are not limited to the aforementioned technical problems. And other technical problems that are not mentioned will apparently be understood by those skilled in the art from the following description.
[0018] Technical solution
[0019] A method and apparatus for decoding a video signal in accordance with the present invention can decode information including whether lighting compensation is performed for a current block, determining a lighting compensation parameter of the current block when the information indicates that the lighting compensation is performed for a current block. lighting is performed for the current block, getting a prediction block by performing inter-prediction for the current block, and performing lighting compensation on the current block using the lighting compensation parameter.
[0020] A method and apparatus for encoding a video signal with the present invention can obtain a prediction block by performing inter-prediction for a current block, determining a lighting compensation parameter for the current block, performing lighting compensation for the current block. prediction using the lighting compensation parameter, and encoding information indicating whether lighting compensation is performed for the current block.
[0021] In the method and apparatus for encoding / decoding a video signal according to the present invention, the illumination compensation parameter is derived based on a first template area adjacent to the current block and a second template area adjacent to the reference block included in a reference image of the current block.
[0022] In the method and apparatus for encoding / decoding a video signal according to the present invention, if an unavailable sample is included in the second template area, the unavailable sample can be replaced by an available sample.
[0023] In the method and apparatus for encoding / decoding a video signal according to the present invention, the available sample can be included in the second template area or the reference block.
[0024] In the method and apparatus for encoding / decoding a video signal according to the present invention, if the unavailable sample is included in the second template area, the unavailable sample can be replaced by an interpolated value from a plurality of available samples. .
[0025] In the method and apparatus for encoding / decoding a video signal according to the present invention, obtaining the prediction block may comprise obtaining a first prediction block based on a first reference picture of the current block, and obtaining a second block of prediction based on a second reference image of the current block.
[0026] In the method and apparatus for encoding / decoding a video signal according to the present invention, illumination compensation can be performed in at least one of the first prediction block or the second prediction block.
[0027] In the method and apparatus for encoding / decoding a video signal according to the present invention, the prediction block can be obtained by a weighted sum of the first prediction block and the second prediction block. At this time, weights applied to the first prediction block and the second prediction block can be determined by a weighted prediction parameter of the current block.
[0028] In the method and apparatus for encoding / decoding a video signal according to the present invention, the weighted prediction parameter can be determined based on the illumination compensation parameter.
[0029] In the method and apparatus for encoding / decoding a video signal according to the present invention, the prediction block can be obtained by a weighted sum of the first prediction block and the second prediction block. At this time, a weight applied to one of the first block of reference and the second reference block can be determined based on the illumination compensation parameter and a weight applied to the other of the first reference block and the second reference block can be determined based on a weighted prediction parameter of the current block.
[0030] The features briefly summarized above for the present invention are only illustrative aspects of the detailed description of the invention that follows, but do not limit the scope of the invention.
[0032] Advantageous effects
[0033] In accordance with the present invention, efficient inter-prediction can be performed for a target encoding / decoding block.
[0034] In accordance with the present invention, a prediction sample can be compensated for a change in luminance between images.
[0035] According to the present invention, a lighting compensation parameter can be efficiently encoded / decoded.
[0036] The effects that can be obtained by the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the description that follows.
[0037] Description of the drawings
[0038] FIG. 1 is a block diagram illustrating a device for decoding a video signal in accordance with an embodiment of the present invention.
[0039] FIG. 2 is a block diagram illustrating a device for decoding a video signal in accordance with an embodiment of the present invention.
[0040] FIG. 3 is a diagram illustrating an example of a hierarchical division of a coding block based on a tree structure according to an embodiment of the present invention.
[0041] FIG. 4 is a diagram illustrating a type of division in which a binary tree-based division is allowed in accordance with an embodiment of the present invention.
[0042] FIG. 5 is a diagram illustrating an example in which only a binary tree based division of a predetermined type is allowed according to an embodiment of the present invention.
[0043] FIG. 6 is a diagram to explain an example in which the information related to the allowable binary tree division number is encoded / decoded, according to an embodiment in which the present invention is applied.
[0044] FIG. 7 is a diagram illustrating a division mode applicable to a coding block in accordance with an embodiment of the present invention.
[0045] FIG. 8 is a flow chart illustrating processes for obtaining a residual sample in accordance with an embodiment to which the present invention is applied.
[0046] FIG. 9 is a flow chart illustrating an inter-prediction method according to an embodiment in which the present invention is applied.
[0047] FIG. 10 is a diagram illustrating processes of deriving motion information from a current block when a blend mode is applied to the current block.
[0048] FIG. 11 is a diagram illustrating processes of deriving motion information from a current block when an AMVP mode is applied to the current block.
[0049] FIG. 12 is a flow chart of a bidirectional weighted prediction method, in accordance with one embodiment of the present invention.
[0050] FIG. 13 is a diagram for explaining a bidirectional weighted prediction principle.
[0051] FIG. 14 is a diagram illustrating a scan command between neighboring blocks.
[0052] FIG. 15 is a flow chart of a lighting compensation prediction method in accordance with the present invention.
[0053] FIG. 16 is a flow chart of a bidirectional weighted prediction method based on illumination compensation.
[0054] FIG. 17 is a diagram illustrating an exemplary two-way weighted prediction embodiment using a prediction block in which illumination compensation is applied.
[0056] Mode for invention
[0057] A variety of modifications can be made to the present invention and there are various embodiments of the present invention, examples of which are now provided with reference to the drawings and described in detail. However, the present invention is not limited thereto, and the exemplary embodiments may be construed as including all modifications, equivalents, or substitutes in a technical concept and technical scope of the present invention. Like reference numbers refer to the like element that is described in the drawings.
[0058] The terms used in the specification, "first", "second", etc. they can be used to describe various components, but the components should not be construed as limited to the terms. The terms are only used to differentiate one component from the others. For example, the "first" component can be named as the "second" component without departing from the scope of the present invention, and the "second" component can also similarly be named as the "first" component. The term "and / or" includes a combination of a plurality of articles or any one of a plurality of terms.
[0059] It will be understood that when an element is referred to simply as "connected to" or "coupled to" another element without being "directly connected to" or "directly coupled to" another element in the present description, it may "be directly connected to" or " directly coupled to ”another element or it can be connected or coupled to another element, with the other element intervening. In comparison, it should be understood that when an element is referred to as "directly coupled" or "directly connected" to another element, there are no intermediate elements present.
[0060] The terms used in the present specification are used only to describe particular embodiments, and are not intended to limit the present invention. An expression used in the singular encompasses the expression in the plural, unless it has a clearly different meaning in context. In the present specification it is to be understood that terms such as "including", "having", and so on. are intended to indicate the existence of the characteristics, numbers, stages, actions, elements, parts or combinations thereof disclosed in the specification, and are not intended to exclude the possibility that one or more other characteristics, numbers, stages, actions, elements , parts or combinations thereof may exist or may be added.
[0061] In the following, the preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following, the same constituent elements in the drawings are indicated by the same reference numerals, and a repeated description of the same elements will be omitted.
[0062] FIG. 1 is a block diagram illustrating a device for encoding a video signal in accordance with an embodiment of the present invention.
[0063] Referring to FIG. 1, the device 100 for encoding a video signal may include: an image splitting module 110, prediction modules 120 and 125, a transform module 130, a quantization module 135, a reorganization module 160, a module of entropy encoding 165, an inverse quantization module 140, an inverse transform module 145, a filter module 150, and a memory 155.
[0064] The constituent parts shown in FIG. 1 are displayed independently to represent mutually different characteristic functions on the device for encoding a video signal. Thus, this does not mean that each constituent part is constituted of a separate hardware or software constituent unit. In other words, each constituent part includes every constituent part and is listed for convenience. Thus, at least two constituent parts of each constituent part can be combined to form a constituent part or a constituent part can be divided into a plurality of constituent parts to perform each function. The embodiment where each constituent part is combined and the embodiment where one constituent part is divided are also within the scope of the present invention, if not departing from the essence of the present invention.
[0065] Furthermore, some of the constituents may not be indispensable constituents that perform an essential function of the present invention, but are selective constituents that only enhance the performance thereof. The present invention can be increased by including the indispensable constituent parts to implement the essence of the present invention except the constituents used in improving performance. The structure that includes only the indispensable constituents except the selective constituents used in enhancing performance alone are also within the scope of the present invention.
[0066] Image splitting module 110 can split an input image into one or more processing units. Here, the processing unit can be a prediction unit (PU), transformation unit (TU) or encoding unit (CU). Image splitting module 110 can divide an image into combinations of multiple coding units, prediction units, and transformation units, and can encode an image by selecting a combination of coding units, prediction units, and transformation units with a criterion. default (for example, cost function).
[0067] For example, an image can be divided into multiple units of coding. A recursive tree structure, such as a quad tree structure, can be used to divide an image into encoding units. A coding unit that is divided into other coding units with a picture or a larger coding unit as a root can be divided with child nodes corresponding to the number of divided coding units. An encoding unit that is no longer divided by a predetermined constraint serves as a leaf node. That is, when it is assumed that only one square division is possible for one coding unit, the coding unit can be divided into at most four other coding units.
[0068] Hereinafter, in the embodiment of the present invention, the encoding unit may mean a unit that performs encoding, or a unit that performs decoding.
[0069] A prediction unit can be one of divisions divided into a square or rectangular shape that is the same size in a single coding unit, or a prediction unit can be one of divisions divided to have a different shape / size in a single encoding unit.
[0070] When a prediction unit subjected to intra-prediction is generated based on one coding unit and the coding unit is not the smallest coding unit, the intra-prediction can be performed without dividing the coding unit into multiple NxN prediction units. .
[0071] Prediction modules 120 and 125 may include an inter-prediction module 120 that performs inter-prediction and an intra-prediction model 125 that performs intra-prediction. Whether inter-prediction or intra-prediction is performed for the prediction unit can be determined, and detailed information (eg, intra-prediction mode, motion vector, reference image, etc.) according to each prediction method can be determined. Here, the processing unit subjected to prediction may be different from the processing unit for which the prediction method and detailed content is determined. For example, prediction method, prediction mode, etc. it can be determined by the prediction unit, and the prediction can be made by the transformation unit. A residual value (residual block) between the generated prediction block and an original block can be input into the transformation module 130. In addition, the prediction mode information, motion vector information and so on. used for prediction can be encoded with the residual value by entropy encoding module 165 and can be transmitted to a device for decoding a video signal. When using a particular encoding mode, it is possible to transmit to a device for decoding video signals by encoding the original block as is without generating the prediction block through the prediction modules 120 and 125.
[0072] The inter-prediction module 120 can predict the prediction unit based on information from at least one of a previous image or a later image of the current image, or it can predict the prediction unit based on information from some encoded regions in the image. current, in some cases. The inter-prediction module 120 may include a reference image interpolation module, a motion prediction module, and a motion compensation module.
[0073] The reference image interpolation module can receive reference image information from memory 155 and can generate pixel information of an integer pixel or less than the integer pixel from the reference image. In the case of luma pixels, an 8-tap (8-tap) DCT-based interpolation filter having different filter coefficients can be used to generate pixel information of an integer pixel or less than an integer pixel. in 1/4 pixel units. In the case of chroma signals, a 4-tap DCT-based interpolation filter having a different filter coefficient can be used to generate pixel information of one integer pixel or less than one number pixel. integer in 1/8 pixel units.
[0074] The motion prediction module can perform motion prediction based on the interpolated reference image or the reference image interpolation module. As methods for calculating a motion vector, various methods, such as a complete search-based block matching algorithm (FBMA), a three-stage search (TSS), a new three-stage search algorithm (NTS), etc. . can be used. The motion vector may have a motion detector value in units of 1/2 pixel or 1/4 pixel based on an interpolated pixel. The motion prediction module can predict a current prediction unit by changing the motion prediction method. As motion prediction methods, various methods such as skip method, merge method, AMVP (Advanced Motion Vector Prediction) method, intra-block copy method, etc., can be used.
[0075] The intra-prediction module 125 may generate a prediction unit based on a reference pixel information near a current block that is pixel information in the current image. When the near block of the current prediction unit is an interpredicted block and thus a reference pixel is an interpredicted pixel, the reference pixel included in the interpredicted block can be replaced by information reference pixel of a nearby block subjected to intra-prediction. That is, when a reference pixel is not available, at least one reference pixel of the available reference pixels can be used in place of the reference pixel information not available.
[0076] Prediction modes in intra-prediction can include a directional prediction mode that uses reference pixel information depending on a prediction direction and a non-directional prediction mode that does not use directional information when making prediction. A mode for predicting luma information may be different from a mode for predicting chroma information, and for predicting chroma information, information from an intra-prediction mode used to predict luma information or predict luma signal information can be used.
[0077] When performing intra-prediction, when the size of the prediction unit is the same as the size of the transformation unit, the intra-prediction can be performed on the prediction unit based on pixels placed on the left, top left, and the top of the prediction unit. However, when performing intra-prediction when the size of the prediction unit is different from the size of the transformation unit, the intra-prediction can be performed using a reference pixel based on the transformation unit. Furthermore, intra-prediction using NxN division can be used for only the smallest coding unit.
[0078] In the intra-prediction method, a prediction block can be generated after applying an AIS (Adaptive Intra Smoothing) filter to a reference pixel depending on the prediction modes. The type of AIS filter applied to the reference pixel can vary. To realize the intra-prediction method, an intra-prediction mode of the current prediction unit can be predicted from the intra-prediction mode of the prediction unit near the current prediction unit. By predicting the prediction mode of the current prediction unit using predicted mode information from the nearby prediction unit, when the Intra-prediction mode of the current prediction unit is the same as the intra-prediction mode of the near prediction unit, the information indicating that the prediction modes of the current prediction unit and the near prediction unit are the same each other can be transmitted using predetermined flag information. When the prediction mode of the current prediction unit is different from the prediction mode of the near prediction unit, entropy coding can be performed to encode prediction mode information of the current block.
[0079] In addition, a residual block including information about a residual value that is different between the prediction unit subjected to prediction and the original prediction unit block can be generated based on prediction units generated by the prediction modes 120 and 125. The Residual block generated can be fed into transform module 130.
[0080] The transformation module 130 can transform the residual block that includes the information about the residual value between the original block and the prediction unit generated by the prediction modules 120 and 125 using a transformation method, such as a discrete cosine transform ( DCT), Discrete Sine Transform (DST), and KLT. Whether DCT, DST or KLT is applied to transform the residual block can be determined based on intra-prediction mode information from the prediction unit used to generate the residual block.
[0081] Quantization module 135 can quantize values transformed to a frequency domain by transform module 130. Quantization coefficients can vary depending on the block or importance of the image. The values calculated by quantization module 135 can be provided to inverse quantization module 140 and rearrangement module 160.
[0082] The rearrangement module 160 may rearrange quantized residual value coefficients.
[0083] The reorganization module 160 can change a coefficient in the form of a two-dimensional block to a coefficient in the form of a one-dimensional vector through a coefficient scanning method. For example, the rearrangement module 160 can scan from a DC coefficient to a coefficient in a high frequency domain using a zigzag scanning method to change the coefficients to be in the form of one-dimensional vectors. Depending on the size of the transformation unit and the intra-prediction mode, the scan in the vertical direction where the coefficients in the two-dimensional block shape is scanned in the column direction or the horizontal direction scan where the coefficients in the two-dimensional block shape are scanned in the row direction can be used instead of the zigzag scan. That is, which scanning method among zigzag scanning, vertical direction scanning and horizontal direction scanning is used can be determined depending on the size of the transform unit and the intra-prediction mode.
[0084] The entropy coding module 165 can perform entropy coding based on the values calculated by the reorganization module 160. The entropy coding can use various coding methods such as Golomb, exponential, variable length coding adaptive to context ( CAVLC) and Context Adaptive Binary Arithmetic Coding (CABAC).
[0085] The entropy coding module 165 can encode a variety of information, such as residual value coefficient information and block type information of the coding unit, prediction mode information, division unit information, unit information of prediction, transform unit information, motion vector information, reference frame information, block interpolation information, filter information etc., from reorganization module 160 and prediction modules 120 and 125.
[0086] The entropy encoding module 165 may entropy encode the coefficients of the encoding unit input from the rearrangement module 160.
[0087] The inverse quantization module 140 can inverse quantize the values quantized by the quantization module 135 and the inverse transform module 145 can inverse transform the values transformed by the transform module 130. The residual value generated by the inverse quantization module 140 and the inverse transform module 145 can be combined with the prediction unit predicted by a motion estimation module, a motion compensation module, and the intra-prediction module of the prediction modules 120 and 125 so that it can generate a rebuilt block.
[0088] Filter module 150 may include at least one deblocking filter, drift correction unit, and adaptive loop filter (ALF).
[0089] Unblocking filter can remove block distortion that occurs due to boundaries between the blocks of the reconstructed image. To determine if unblocking is performed, the pixels included in various rows or columns in the block can be based on determining whether to apply the unblocking filter to the current block. When the unblocking filter is applied to the block, a strong filter or weak filter can be applied depending on the required unblocking filter force. Also, by applying the unblocking filter, a horizontal direction filtering and vertical direction filtering can be processed in parallel.
[0090] The skew correction module can correct the skew with the original image in units of one pixel in the image subjected to unlocking. To perform skew correction on a particular image, it is possible to use a method of applying skew in consideration of the edge information of each pixel or a method of dividing pixels of an image into the predetermined number of regions, determining a region to submit to perform the deviation, and apply the deviation to the determined region.
[0091] Adaptive Loop Filtering (ALF) can be performed based on the value obtained by comparing the filtered reconstructed image and the original image. The pixels included in the image can be divided into predetermined groups, a filter to be applied to each of the groups can be determined, and the filtering can be done individually for each group. Information on whether to apply ALF and a luma signal can be transmitted by encoding units (CU). The shape and filter coefficient of a filter for ALF can vary depending on each block. Furthermore, the filter for ALF in the same way (fixed way) can be applied regardless of the characteristics of the target application block.
[0092] Memory 155 may store the reconstructed block or computed image through filter module 150. The reconstructed and stored image or block may be provided to prediction modules 120 and 125 when performing inter-prediction.
[0093] FIG. 2 is a block diagram illustrating a device for decoding a video signal in accordance with an embodiment of the present invention.
[0094] Referring to FIG. 2, the device 200 for decoding a video signal may include: an entropy decoding module 210, a rearrangement module 215, an inverse quantization module 220, an inverse transform module 225, prediction modules 230 and 235, a filter module 240 and a memory 245.
[0095] When a video signal bit rate is input from the device to decode a video signal, the input bit rate can be decoded according to a reverse process of the device to encode a video signal.
[0096] The entropy decoding module 210 can perform entropy decoding according to a reverse entropy encoding process by the entropy encoding module of the device for encoding a video signal. For example, in correspondence with the methods performed by the device to encode a video signal, various methods such as exponential Golomb encoding, context adaptive variable length encoding (CAVLC), and context adaptive binary arithmetic encoding (CABAC) may be applied.
[0097] The entropy coding module 210 can decode information about intra-prediction and inter-prediction made by the device to encode a video signal.
[0098] The rearrangement module 215 can perform rearrangement in the bit rate entropy decoded by the entropy decoding module 210 based on the rearrangement method used in the device to encode a video signal. The reorganization module can reconstruct and rearrange coefficients in the form of one-dimensional vectors to the coefficient in the form of two-dimensional blocks. The reorganization module 215 can receive information related to the coefficient scan performed in the device to encode a video signal and can perform the reorganization by a reverse scan method of the coefficients based on the scan order performed in the device to encode. a video signal.
[0099] The inverse quantization module 220 can perform inverse quantization based on a quantization parameter received from the device for encoding a video signal and the rearranged coefficients of the block.
[0100] The inverse transformation module 225 can perform inverse transformation, that is, inverse DCT, inverse DST, and inverse KLT, which is the reverse transformation process, that is, DCT, DST, and KLT performed by the transform module on the quantization result by the device for encoding a video signal. The inverse transformation can be performed based on a transfer unit determined by the device for encoding a video signal. The inverse transform module 225 of the device for decoding a Video signal can selectively perform transformation schemes (eg, DCT, DST, and KLT) depending on multiple pieces of information, such as prediction method, current block size, prediction direction, etc.
[0101] Prediction modules 230 and 235 may generate a prediction block based on prediction block generation information received from entropy coding module 210 and previously decoded image or block information received from memory 245.
[0102] As described above, as the operation of the device to decode a video signal, when performing intra-prediction, when the size of the prediction unit is the same as the size of the transformation unit, the intra-prediction can be performed in the prediction unit based on the pixels positioned to the left, top left, and top of the prediction unit. When performing intra-prediction, when the size of the prediction unit is different from the size of the transformation unit, the intra-prediction can be performed using a reference pixel based on the transformation unit. Furthermore, intra-prediction using the NxN split can be used for only the smallest coding unit.
[0103] Prediction modules 230 and 235 may include a prediction unit determination module, inter-prediction module, and intra-prediction module. The prediction unit determination module can receive a variety of information, such as prediction unit information, prediction mode information of an intra-prediction method, information about the motion prediction of an inter-prediction method, etc. ., from the entropy decoding module 210, it can divide a current coding unit into prediction units, and can determine whether intra-prediction or inter-prediction is performed in the prediction unit. By using information required in the inter-prediction of the current prediction unit received from the device to encode a video signal, the inter-prediction module 230 can inter-predict the current prediction unit based on information from at least one of a previous image or a later image of the current image that includes the current prediction unit. Alternatively, inter-prediction can be performed based on information from some pre-reconstructed regions in the current image including the current prediction unit.
[0104] To perform inter-prediction, it can be determined for the unit of encoding which is used among a skip mode, a blend mode, an AMVP mode, and an interblock copy mode as the motion prediction method of the prediction unit included in the encoding unit.
[0105] Intra-prediction module 235 can generate a prediction block based on pixel information in the current image. When the prediction unit is a prediction unit subjected to intra-prediction, the inter-prediction can be performed based on intra-prediction mode information of the prediction unit received from the device for encoding a video signal. Intra-prediction module 235 may include an adaptive intra-smoothing (AIS) filter, reference pixel interpolation module, and a DC filter. The AIS filter performs filtering of the reference pixel of the current block, and it can be determined whether the filter is applied depending on the prediction mode of the current prediction unit. The AIS filtering can be performed on the reference pixel of the current block using the prediction mode of the prediction unit and the AIS filter information received from the device to encode a video signal. When the prediction mode of the current block is a module where AIS filtering is not performed, the AIS filter may not be applied.
[0106] When the prediction mode of the prediction unit is a prediction mode in which the intra-prediction is performed based on the pixel value obtained by interpolating the reference pixel, the reference pixel interpolation module can interpolate the reference pixel. reference to generate the reference pixel of an integer pixel or less than an integer pixel. When the prediction mode of the current prediction unit is a prediction mode in which the prediction block is generated without interpolation of the reference pixel, the reference pixel may not be interpolated. The DC filter can generate a prediction block through filtering when the prediction mode of the current block is a DC mode.
[0107] The reconstructed image or block may be provided on filter module 240. Filter module 240 may include the unblocking filter, skew correction module, and ALF.
[0108] Information about whether or not the unblocking filter is applied to the corresponding block or image and information about which of a strong filter and a weak filter is applied when the unblocking filter is applied, can be received from the device to encode a signal signal. video. The unblocking filter of the device for decoding a video signal can receive information about the filter of Unlocking this device to encode a video signal, and you can perform unlocking filtering in the corresponding block.
[0109] The skew correction module can perform skew correction on the reconstructed image based on the type of skew correction and skew value information applied to an image when performing encoding.
[0110] The ALF can be applied to the encoding unit based on information about whether to apply the ALF, information of the ALF coefficient, etc. received from the device to encode a video signal. The ALF information can be provided as included in a particular parameter set.
[0111] Memory 245 can store the reconstructed image or block for use as a reference image or block, and can provide the reconstructed image to an output module.
[0112] As described above, in the embodiment of the present invention, for the convenience of explanation, the encoding unit is used as a term that represents a unit for encoding, but the encoding unit may serve as a unit that performs decoding as well. as encoding.
[0113] Furthermore, a current block can represent a target block for encoding / decoding. And the current block may have a coding tree block (or a coding tree unit), a coding block (or coding unit), a transform block (or transform unit), a prediction block (or prediction unit) or the like depending on the encoding / decoding stage.
[0114] An image can be encoded / decoded by dividing it into base blocks that have a square shape or non-square shape. At this time, the base block can be referred to as a coding tree unit. The coding tree unit can be defined as a coding unit of the largest allowable size within a sequence or a slice. The information regarding whether the coding tree unit has a square or non-square shape or the information regarding the size of the coding tree unit can be signaled through a set of sequence parameters, a set of image parameters, or a cutting head. The coding tree unit can be divided into smaller size divisions. At this time, assuming a depth of a division generated by dividing the coding tree unit is assumed to be 1, a depth of a division generated by dividing the division having a depth of 1 can be defined as 2. That is, a division generated by dividing a division with a depth k in the coding tree unit can be defined as having a depth k + 1.
[0115] A division of arbitrary size generated by dividing a coding tree unit can be defined as a coding unit. The coding unit can be recursively divided or divided into base units to perform prediction, quantization, transformation or loop filtering and the like. For example, an arbitrary size division generated by dividing the coding unit can be defined as the coding unit, or it can be defined as the transformation unit or prediction unit, which is a base unit for performing prediction, quantization, transformation, or loop filtering. and similar.
[0116] The division of a coding tree unit or a coding unit can be done based on at least one of a vertical line and a horizontal line. Furthermore, the number of vertical lines or horizontal dividing lines of the coding tree unit or the coding unit may be at least one or more. For example, the coding tree unit or the coding unit can be divided into two divisions using a vertical line or horizontal line, or the coding tree unit or the coding unit can be divided into three divisions using two vertical lines or two horizontal lines. Alternatively, the coding tree unit or the coding unit can be divided into four divisions with a length and width of 1/2 using a vertical line and a horizontal line.
[0117] When a coding tree unit or a coding unit is divided into a plurality of divisions using at least one vertical line or at least one horizontal line, the divisions may have a uniform size or different size. Alternatively, any one slice can be a different size from the remaining slices.
[0118] In the embodiments described below it is assumed that a coding tree unit or coding unit is divided into a quadruple tree structure or a binary tree structure. However, it is also possible to divide a coding tree unit or coding unit using a greater number of vertical lines or a greater number of horizontal lines.
[0119] FIG. 3 is a diagram illustrating an example of hierarchical division of a coding block based on a tree structure according to an embodiment of the present invention.
[0120] An input video signal is decoded in predetermined block units. Such a default unit for decoding the input video signal is a coding block. The coding block can be a unit that performs intra / inter-prediction, transformation and quantization. Furthermore, a prediction mode (for example, an intra-prediction mode or inter-prediction mode) is determined in units of a coding block, and the prediction blocks included in the coding block may share the given prediction mode. . The coding block can be a square or non-square block with an arbitrary size in the range of 8x8 to 64x64, or it can be a square or non-square block with a size of 128x128, 256x256 or more.
[0121] Specifically, the coding block can be hierarchically divided based on at least one of a quad tree and a binary tree. Here, quadruple tree-based division can mean that a 2Nx2N coding block is divided into four NxN coding blocks, and binary tree-based division can mean that one coding block is divided into two coding blocks. Even if binary tree-based division is performed, a square-shaped coding block may exist at the bottom depth.
[0122] The binary tree based division can be done symmetrically or asymmetrically. The coding block division based on the binary tree can be a square block or non-square block, such as rectangular in shape. For example, a division type in which binary tree-based division is allowed can contain at least one of a symmetric type of 2NxN (horizontal direction non-square coding unit) or Nx2N (vertical direction non-square coding unit ), asymmetric type of nLx2N, nRx2N, 2NxnU, or 2NxnD.
[0123] Binary tree based splitting can limitedly allow one of a symmetric or asymmetric type splitting. In this case, the construction of the coding tree unit with square blocks can correspond to a quadruple tree division CU, and building the coding tree unit with the symmetric non-square blocks can correspond to the binary tree division. The construction of the coding tree unit with square blocks and symmetric non-square blocks can correspond to the division CU of binary and quadruple tree.
[0124] Binary tree-based division can be done in a coding block where a quadruple tree-based division is no longer performed. Quadruple tree based division may no longer be performed in the block of split encoding based on the binary tree.
[0125] Also, the division of a lower depth can be determined depending on a type of division of a higher depth. For example, if binary tree-based splitting is allowed at two or more depths, only the same type of binary tree splitting from the top depth can be allowed at the bottom depth. For example, if binary tree-based division in the upper depth is performed with type 2NxN, binary tree-based division in the lower depth is also performed with type 2NxN. Alternatively, if the binary tree-based division in the upper depth is done with the Nx2N type, the binary tree-based division in the lower depth is also done with the Nx2N type.
[0126] On the contrary, it is also possible to allow, at a lower depth, only a different type with respect to the type of binary tree division of a higher depth.
[0127] It may also be possible to limit only a specific type of binary tree based division to use for the sequence, slice, coding tree unit, or coding unit. As an example, only the 2NxN type or Nx2N type of binary tree based division can be allowed for the encoding tree unit. An available split type can be predefined in an encoder or decoder. Either the information about the available split type or the unavailable split type can be encoded and then signaled through a bit rate.
[0128] FIG. 5 is a diagram illustrating an example where only a specific type of binary tree based division is allowed. FIG. 5A shows an example where only the Nx2N type of binary tree based division is allowed, and FIG. 5B shows an example where only 2NxN type of binary tree based division is allowed. To implement the adaptive division based on the binary tree or quadruple tree, the information indicating the division based on the quadruple tree, the information about the size / depth of the coding block in which the quadruple tree based division is allowed, information that indicates the binary tree-based division, information about the size / depth of the coding block in which the binary tree-based division is allowed, information about the size / depth of the coding block in which the division based on binary tree, information about whether or not binary tree based division is allowed in a vertical direction or horizontal direction, etc., can be used.
[0129] In addition, information about the number of times binary tree splitting is allowed, a depth at which binary tree splitting is allowed, or the number of depths at which binary tree splitting is allowed can be obtained for a coding tree unit or specific coding unit. Information can be encoded in units of a coding tree unit or coding unit, and can be transmitted to a decoder via a bit rate.
[0130] For example, a 'max_binary_depth_idx_minus1' syntax indicating a maximum depth at which binary tree splitting is allowed can be encoded / decoded via a bit rate. In this case, max_binary_depth_idx_minus1 1 can indicate the maximum depth at which binary tree splitting is allowed.
[0131] Referring to the example shown in FIG. 6, in FIG. 6, the binary tree division has been performed for a coding unit having a depth of 2 and a coding unit having a depth of 3. Consequently, at least one of the information indicating the number of times the division of binary tree in the coding tree unit has been performed (that is, 2 times), information indicating the maximum depth at which the binary tree division has been allowed in the coding tree unit (that is, depth 3), or the number of depths at which the binary tree division has been performed in the encoding tree unit (i.e. 2 (depth 2 and depth 3)) can be encoded / decoded via a bit rate .
[0132] As another example, at least one of a piece of information about the number of times the binary tree split is performed, the depth at which the binary tree split is allowed, or the number of depths at which the tree split binary allowable can be obtained for each sequence or each cutoff. For example, the information can be encoded in units of a sequence, an image, or a cutter unit and transmitted through a bit rate. Consequently, at least one of the binary tree division number in a first cut, the maximum depth at which the binary tree division is allowed in the first cut, or the number of depths at which the binary tree division is allowed. performed on the first cut may be different from a second cut. For example, in the first cut, binary tree splitting can be allowed for only one depth, while in the second cut, binary tree splitting can be allowed for two depths.
[0133] As another example, the number of times binary tree splitting is allowed, the depth at which binary tree splitting is allowed, or the number of depths binary tree splitting is allowed can be set differently. based on a time level identifier (temporal ID) of a slice or image. Here, the temporal level identifier (temporal ID) is used to identify each of the plurality of layers of a video signal with a scalability of at least one of vision, spatial, temporal or quality.
[0134] As shown in FIG. 3, the first coding block 300 with the dividing depth (divided depth) of k can be divided into multiple second coding blocks based on the quadruple tree. For example, the second code blocks 310-340 can be square blocks half the width and half the height of the first code block, and the division depth of the second code block can be increased to k + 1.
[0135] The second coding block 310 with the dividing depth of k + 1 can be divided into multiple third coding blocks with the dividing depth of k + 2. The division of the second coding block 310 can be performed using selectively one of the quad tree and the binary tree depending on a division method. Here, the division method can be determined based on at least one of the information indicating the quadruple tree based division and the information indicating the binary tree based division.
[0136] When the second coding block 310 is divided based on the quadruple tree, the second coding block 310 can be divided into four third coding blocks 310a with half the width and half the height of the second coding block, and the depth of division of the third coding block 310a may be increased to k + 2. In comparison, when the second coding block 310 is divided based on the binary tree, the second coding block 310 can be divided into two third coding blocks. Here, each of the two third coding blocks can be a non-square block having one half the width and half the height of the second coding block, and the division depth can be increased to k + 2. The second coding block can be determined as a non-square block of horizontal direction or vertical direction depending on the division direction, and the division direction can be determined based on the information whether the binary tree-based division is performed in the vertical direction or the horizontal direction.
[0137] Meanwhile, the second coding block 310 can be determined as a leaf coding block that is no longer divided based on the quad tree or the binary tree. In this case, the sheet coding block can be used as a prediction block or transform block.
[0138] Like the division of the second coding block 310, the third coding block 310a can be determined as a leaf coding block, or it can further be divided based on the quadruple tree or the binary tree.
[0139] Meanwhile, the third coding block 310b divided based on the binary tree can further be divided into coding blocks 310b-2 of a vertical direction or coding blocks 310b-3 of a horizontal direction based on the binary tree, and the depth of division of the relevant coding blocks can be increased to k + 3. Alternatively, the third code block 310b can be determined as a leaf code block 310b-1 that is no longer divided based on the binary tree. In this case, the coding block 310b-1 can be used as a prediction block or a transform block. However, the above division process can be performed in a limited way based on at least one of the coding block size / depth information in which quad tree based division is allowed, the information about the size / depth of the coding block. encoding in which binary tree based splitting is allowed, and the coding block size / depth information in which binary tree based splitting is not allowed.
[0140] A number of a candidate representing a size of a coding block can be limited to a predetermined number, or a size of a coding block in a predetermined unit can have a fixed value. As an example, the size of the encoding block in a stream or in an image can be limited to 256x256, 128x128, or 32x32. Information indicating the size of the coding block in the sequence or in the image can be signaled through a sequence head or image head.
[0141] As a result of division based on the binary tree or quad tree, an encoding unit can be represented as a rectangular or square shape of an arbitrary size.
[0142] A coding block is encoded using at least one of a skip mode, intra-prediction, inter-prediction, or skip method. Once a coding block is determined, a prediction block can be determined through a predictive division of the coding block. The predictive division of the coding block can be performed by a division mode (Part_mode) that indicates a type of division of the coding block. A size or shape of the prediction block can be determined according to the division mode of the coding block. For example, a prediction block size determined according to the division mode may be equal to and or less than a coding block size.
[0143] FIG. 7 is a diagram illustrating a division mode that can be applied to a coding block when the coding block is verified by inter-prediction.
[0144] When a coding block is inter-predictedly coded, one of 8 split modes can be applied to the coding block, as in the example shown in FIG. Four.
[0145] When a coding block is coded by intra-prediction, a PART_2Nx2N division mode or a PART_NxN division mode can be applied to the coding block.
[0146] PART_NxN can be applied when an encoding block has a minimum size. Here, the minimum size of the coding block can be predefined in an encoder or decoder. Or the information regarding the minimum size of the coding block can be indicated by a bit rate. For example, the minimum size of the coding block can be signaled through a cutting head, whereby the minimum size of the coding block can be defined by cutting.
[0147] In general, a prediction block can be 64x64 to 4x4 in size. However, when the coding block is coded by inter-prediction, the prediction block can be prevented from being 4x4 in size to reduce memory bandwidth when performing motion compensation.
[0148] FIG. 8 is a flow chart illustrating processes for obtaining a residual sample in accordance with an embodiment in which the present invention is applied.
[0149] First, a residual coefficient of a current block can be obtained S810. A decoder can obtain a residual coefficient through a method of coefficient scan. For example, the decoder can perform a coefficient scan using a zigzag scan, a vertical scan, or a horizontal scan, and can obtain residual coefficients in a two-dimensional block shape.
[0150] An inverse quantization can be performed on the residual coefficient of the current block S820.
[0151] An inverse transformation is selectively performed according to whether the inverse transformation is omitted in the dequantized residual coefficient of the current block S830. Specifically, the decoder can determine whether to skip the inverse transformation in at least one of the vertical direction or horizontal direction of the current block. When it is determined to apply the inverse transformation in at least one of the horizontal direction or the vertical direction of the current block, a residual sample of the current block can be obtained by inverse transformation of the dequantized residual coefficient of the current block. Here, the inverse transformation can be performed using at least one of DCT, DST, and KLT.
[0152] When the inverse transformation is skipped in both the horizontal and vertical direction of the current block, the inverse transformation is not performed in the vertical or horizontal direction of the current block. In this case, the residual sample of the current block can be obtained by scaling the dequantized residual coefficient with a predetermined value.
[0153] Omitting the inverse transformation in the horizontal direction means that the inverse transformation is not done in the horizontal direction but the inverse transformation is done in the vertical direction. At this time, scaling can be done in the horizontal direction.
[0154] The omission of the inverse transformation in the vertical direction means that the inverse transformation is not performed in the vertical direction but the inverse transformation is performed in the horizontal direction. At this time, scaling can be done in the vertical direction.
[0155] Whether or not an inverse transform skip technique can be used for the current block can be determined depending on a division type of the current block. For example, if the current block is generated through a binary tree-based division, the inverse transform skip scheme may be limited for the current block. Therefore, when the current block is generated through a binary tree based division, the residual sample of the current block can be obtained by inverse transformation of the current block. Also, when the current block is generated via binary tree based division, the encoding / decoding information indicating whether or not reverse transform is skipped (eg transform_skip_flag) can be skipped.
[0156] Alternatively, when the current block is generated via binary tree based division, it is possible to limit the inverse transform skip scheme to at least one of the horizontal direction or vertical direction. Here, the direction in which the reverse transform skip scheme is limited can be determined based on information decoded from the bit rate, or it can be adaptively determined based on at least one of a current block size, a form of the current block or an intra-prediction mode of the current block.
[0157] For example, when the current block is a non-square block with a width greater than the height, the inverse transform skip scheme can be allowed only in the vertical direction and limited in the horizontal direction. That is, when the current block is 2NxN, the inverse transformation is performed in the horizontal direction of the current block, and the inverse transformation can be selectively performed in the vertical direction.
[0158] On the other hand, when the current block is a non-square block that has a height greater than the width, the inverse transform skip scheme can be allowed only in the horizontal direction and limited to the vertical direction. That is, when the current block is Nx2N, the inverse transformation is performed in the vertical direction of the current block, and the inverse transformation can be selectively performed in the horizontal direction.
[0159] Compared to the above example, when the current block is a non-square block that has a width greater than the height, the inverse transform skip scheme can be allowed only in the horizontal direction, and when the current block is a non-square block having a height greater than the width, the inverse transform skip scheme can be allowed only in the vertical direction.
[0160] The information indicating whether or not the inverse transformation with respect to the horizontal direction is omitted or the information indicating whether the inverse transformation with respect to the vertical direction is omitted can be signaled through the bit rate. For example, the information indicating whether or not the reverse transformation in the horizontal direction is skipped is a 1-bit flag, 'hor_transform_skip_flag' and the information that indicates whether the reverse transformation is skipped in the vertical direction is a 1-bit flag, 'ver_transform_skip_flag'. The encoder can encode at least one of 'hor_transform_skip_flag' or 'ver_transform_skip_flag' according to the current block shape. Furthermore, the decoder can determine whether the inverse transformation in the horizontal direction or in the vertical direction is ignored or not by using at least one of "hor_transform_skip_flag" or "ver_transform_skip_flag".
[0161] It can be set to skip the inverse transformation for any address of the current block depending on a division type of the current block. For example, if the current block is generated through a binary tree-based division, the inverse transformation in the horizontal direction or vertical direction can be omitted. That is, if the current block is generated by division based on binary tree, it can be determined that the inverse transformation for the current block is skipped in at least one of the horizontal direction or vertical direction without encoding / decoding information (e.g. transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) indicating whether the inverse transformation of the current block is skipped or not.
[0162] FIG. 9 is a flow chart illustrating an inter-prediction method according to an embodiment in which the present invention is applied.
[0163] Referring to FIG. 9, the information of a movement of a current block is determined S910. The information of a movement of the current block may include at least one of a vector of movement relating to the current block, a reference image index of the current block, or an interprediction address of the current block.
[0164] The motion information of the current block can be obtained based on at least one information signaled through a bit rate or motion information of a nearby block adjacent to the current block.
[0165] FIG. 10 is a diagram illustrating processes of deriving information from a movement of a current block when a merge mode is applied to the current block.
[0166] If the blending mode is applied to the current block, a spatial blend candidate can be derived from a spatial near block of the current block S1010. The spatial near block may comprise at least one of adjacent blocks to the left, top, or corner (eg, at least one of the upper left corner, upper right corner, or lower left corner) of the current block.
[0167] The motion information of the spatial fusion candidate can be set equal to the motion information of the spatial near block.
[0168] A temporary merge candidate can be derived from a temporary near block of the current block S1020. The temporary near block can mean a block included in a placed image. The placed image has a different image order count (POC) than a current image that includes the current block. The placed image can be determined as an image having a predefined index in a reference image list or it can be determined by an index pointed from a bit rate. The temporary near block can be determined as a block comprising coordinates in a placed block that has the same position as the current block and the placed image, or a block adjacent to the placed block. For example, at least one of the block that includes center coordinates of the placed block or a block adjacent to the lower left boundary of the placed block can be determined as the temporary near block.
[0169] The motion information of the temporal merge candidate can be determined based on motion information of the temporal near block. For example, a motion vector of the temporal fusion candidate can be determined based on a motion vector of the temporal near block. Furthermore, an interprediction direction of the temporal merge candidate can be set as the same as the interprediction direction of the temporal near block. However, a reference image index of the temporary merge candidate can have a fixed value. For example, the reference image index of the temporary merge candidate can be set to '0'.
[0170] Then, a fusion candidate list including the spatial fusion candidate and the temporal fusion candidate can be generated S1030. If the number of fusion candidates included in the fusion candidate list is less than a maximum number of fusion candidates, a combined fusion candidate combining two or more fusion candidates can be included in the fusion candidate list.
[0171] When the fusion candidate list is generated, at least one of the fusion candidates included in the fusion candidate list may be specified based on the fusion candidate index S1040.
[0172] The movement information of the current block can be set as the same as the movement information of the merge candidate specified by the S1050 melt candidate index. For example, when the spatial fusion candidate is selected by the fusion candidate index, the motion information of the current block may be set as the same as the motion information of the spatial near block. Alternatively, when the temporary merge candidate is selected by the merge candidate index, the current movement information may be set as the same as the movement information of the temporary near block.
[0173] FIG. 11 is a diagram illustrating processes of deriving motion information from a current block when an AMVP mode is applied to the current block.
[0174] When the AMVP mode is applied to the current block, at least one of an inter-prediction address of the current block or a reference picture index can be decoded from a S1110 bit rate. That is, when the AMVP mode is applied, at least one of the inter-prediction direction or the reference image index of the current block can be determined based on information encoded through the bit rate.
[0175] A spatial motion vector candidate can be determined based on the motion vector of a spatial near block of the current block S1120. The spatial motion vector candidate may include at least one of a first spatial motion vector candidate derived from an upper near block of the current block and a second spatial motion vector candidate derived from a left near block of the current block. Here, the upper near block may include at least one of blocks adjacent to an upper or upper right corner of the current block, and the near left block of the current block may include at least a few of adjacent blocks to a left or lower left corner of the current block. A block adjacent to an upper left corner of the current block can be treated as the upper close block, or as the lower close block.
[0176] When the reference images between the current block and the spatial near block are different from each other, it is also possible to obtain the spatial motion vector by scaling the motion vector of the spatial near block.
[0177] A temporal motion vector candidate can be determined based on a motion vector of the temporal near block of the current block S1130. When the reference images between the current block and the temporal near block are different from each other, it is also possible to obtain the vector of temporal motion scaling the motion vector of the temporal near block.
[0178] A motion vector candidate list including the spatial motion vector candidate and the temporal motion vector candidate may be generated S1140.
[0179] When the motion vector candidate list is generated, at least one of the motion vector candidates included in the motion vector candidate list may be specified based on information that is specified by at least one from the vector candidate list movement S1150.
[0180] The motion vector candidate specified by the information can be set as the motion vector prediction value of the current block, and a motion vector difference value can be added to the motion vector prediction value to obtain a motion vector of the current block S1160. In this motion, the motion vector difference value can be analyzed through the bit rate.
[0181] When the motion information of the current block is obtained, the motion compensation for the current block can be performed based on the motion information obtained S920. More specifically, motion compensation for the current block can be performed based on the inter-prediction direction, the reference image index, and the motion vector of the current block.
[0182] The inter-prediction direction can indicate N directions. Here, N is a natural number, and it can be 1, 2, or 3 or more. If the inter-prediction direction indicates N directions, it means that the inter-prediction of the current block is made based on N reference images or N reference blocks. For example, when the inter-prediction direction of the current block indicates a one-direction, the inter-prediction of the current block can be performed based on a reference image. On the other hand, when the inter-prediction of the current block indicates a bidirection, the inter-prediction of the current block can be performed using two reference pictures or two reference blocks.
[0183] It is also possible to determine if a multi-directional prediction is allowed for the current block based on at least one of a size or a shape of the current block. For example, when a coding unit has a square shape, multi-directional prediction is allowed for the encoding / decoding of it. On the other hand, when the coding unit has a non-square shape, only one-directional prediction is allowed for its coding / decoding. Contrary to the previous cases, it is also possible to establish that the multi-directional prediction is allowed for the encoding / decoding of the encoding unit when it has the non-square shape, and only the one-way prediction is allowed for the encoding / decoding of the encoding unit when square. Alternatively, it is also possible to set that multidirectional prediction is not allowed for encoding / decoding of the prediction unit, when the prediction unit has the non-square shape of 4x8 or 8x4 or the like.
[0184] The reference image index can specify a reference image to use for inter-prediction of the current block. Specifically, the reference image index may specify any one of reference images included in the reference image list. For example, when the inter-prediction direction of the current block is bidirectional, the reference picture (L0 reference picture) included in the L0 reference picture list is specified by a L0 reference picture index, and the L0 reference picture reference (L1 reference picture) included in the L1 reference picture list is specified by an L1 reference picture index.
[0185] Alternatively, a reference image can be included in two or more reference image lists. Accordingly, even if the reference image index of the reference image included in the reference image list L0 and the reference image index of the reference image included in the reference image list L1 are different, some temporary orders (image order count, POC) of both reference images can be the same.
[0186] The motion vector can be used to specify a position of a reference block, in the reference image, corresponding to a prediction block of the current block. Inter-prediction of the current block can be performed based on the reference block, specified by the motion vector, in the reference image. For example, an integer pixel included in the reference block or a non-integer pixel generated by interpolation of integer pixels may be generated as a prediction sample of the current block. It is also possible that reference blocks specified by different motion vectors can be included in the same image of reference. For example, when the reference image selected from the reference image list L0 and the reference image selected from the reference image list L1 are equal, the reference block specified by a motion vector L0 and the reference block specified by an L1 motion vector can be included in the same reference image.
[0187] As described above, when the inter-prediction direction of the current block indicates two or more directions, the motion compensation for the current block can be performed based on two or more reference images or two or more reference blocks.
[0188] For example, when the current block is encoded with bidirectional prediction, the prediction block of the current block can be obtained based on two reference blocks obtained from two reference images. Furthermore, when the current block is encoded with bidirectional prediction, a residual block indicating the difference between an original block and the obtained prediction block based on the two reference blocks can be encoded / decoded.
[0189] When two or more reference images are used, motion compensation for the current block can be done by applying the same or different weights to the respective reference images. Then, a method for making a weighted prediction of the current block will be described in detail in the following embodiments when the inter-prediction direction indicates two or more directions. For the sake of explanation, the interprediction direction of the current block is assumed to be bidirectional. However, even when the inter-prediction address of the current block indicates three or more, the following embodiment can be applied with the application. In addition, the motion compensation for the current block using two prediction images will be referred to as the bidirectional prediction method or the bidirectional prediction encoding / decoding method.
[0190] When bidirectional prediction is applied to the current block, the reference images used for bidirectional prediction of the current block may include an image whose temporal order (Image Order Count, POC) is prior to the current image, an image whose temporal order it is later than the current image or the current image. For example, one of the two reference images may be an image whose time order is prior to the current image, and the other image may be an image whose time order is after the current image.
[0191] Alternatively, one of the two reference images may be the current image, and the other image may be an image whose time order is prior to the current block or whose time order is after the current image. Alternatively, both reference images can have time orders prior to the current image, or they can have time orders after the current image. Alternatively, both reference images can be the current image.
[0192] Two prediction blocks can be generated from each of the two reference image lists. For example, a prediction block based on the reference image L0 can be generated based on the motion vector L0, and a prediction block based on the reference image L1 can be generated based on the motion vector L1. It is also possible that the prediction block generated by the motion vector L0 and the prediction block generated by the motion vector L1 can be generated based on the same reference image.
[0193] A prediction block of the current block can be obtained based on an average value of the prediction blocks generated based on both reference images. For example, Equation 1 shows an example of obtaining the prediction block of the current block based on the average value of a plurality of the prediction blocks.
[0194] [Equation 1]
[0195] P (x) = l / 2 * P 0Oc) +1/2 * />! <>)
[0196] In Equation 1, P (x) indicates a final prediction sample of the current block or a bidirectionally predicted prediction sample, and PN (x) indicates a sample value of an LN prediction block generated based on an LN reference image. . For example, P0 (x) can mean a prediction sample of the generated prediction block based on the L0 reference image, and P1 (x) can mean a prediction sample of the generated prediction block based on the L1 reference image. . That is, according to Equation 1, the final prediction block of the current block can be obtained based on the weighted sum of the plurality of the generated prediction blocks based on the plurality of reference images. At this time, a predefined fixed value weight in the encoder / decoder can be assigned to each prediction block.
[0197] In accordance with one embodiment of the present invention, the Final prediction of the current block is obtained based on the weighted sum of a plurality of the prediction blocks, and the weight assigned to each prediction block can be variably / adaptively determined. For example, when both reference images or both prediction blocks have different luminosity, it is more efficient to perform the bidirectional prediction for the current block by applying different weights to each prediction block than to perform the bidirectional prediction for the current block by averaging the blocks of prediction. Next, for ease of explanation, the bidirectional prediction method when the weight assigned to each of the prediction blocks is variably / adaptively determined will be called "bidirectional weighted prediction".
[0198] It is also possible to determine whether or not bidirectional weighted prediction is allowed for the current block based on at least one of a current block size or shape. For example, if the coding unit has a square shape, it is allowed to encode / decode it using bidirectional weighted prediction, while if the coding unit has a non-square shape, it is not allowed to encode / decode it using prediction. bidirectional weighted. Contrary to the previous cases, it is also possible to establish that it is allowed to encode / decode the coding block using bidirectional weighted prediction when it has a non-square shape, and it is not allowed to encode / decode the coding block using bidirectional weighted prediction when it has the square shape. Alternatively, it is also possible to set that bidirectional weighted prediction is not allowed to encode / decode the prediction unit when the prediction unit is a non-square division with a size of 4x8 or 8x4 or the like.
[0199] FIG. 12 is a flow chart of a bidirectional weighted prediction method, in accordance with one embodiment of the present invention.
[0200] To perform bidirectional weighted prediction, a weighted prediction parameter for the current block can be determined S1210. The weighted prediction parameter can be used to determine a weight to apply to both reference images. For example, as depicted in FIG. 13, a weight of 1-w can be applied to a prediction block generated based on the reference image L0, and a weight of w can be applied to a prediction block generated based on the reference image L1. Based on the weighted prediction parameters, the The weighting to be applied to each prediction block is determined S1220, and a weighted summation operation of a plurality of prediction blocks is performed based on the determined weight to generate a final prediction block of the current block S1230. For example, the final prediction block of the current block can be generated based on the following Equation 2.
[0201] [Equation 2]
[0202] F (x) = (lw) * P 0 W »t '* /, iW
[0203] In Equation 2, w represents the weighted prediction parameter.
[0204] As shown in Equation 2, the final prediction block P (x) of the current block can be obtained by assigning the weight of 1-w to the prediction block P0 and assigning the weight of w to the prediction block P1. It is also possible to assign the weight of w to the dispatch block P0 and assign the weight of 1-w to the prediction block P1, as opposed to what is shown in Equation 2.
[0205] The weighted prediction parameter can be determined based on a difference in brightness between the reference images, or it can be determined based on a distance between the current image and the reference image (ie, the POC difference). Alternatively, it is also possible to determine the weighted prediction parameter based on the size or shape of the current block.
[0206] The weighted prediction parameter can be determined in units of a block (eg, a coding tree unit, coding unit, prediction unit, or transform unit), or it can be determined in units of a slice or image.
[0207] At this time, the weighted prediction parameter can be determined based on predefined candidate weighted prediction parameters. As an example, the weighted prediction parameter can be determined as one of the predefined values such as -1/4, 1/4, 3/8, 1/2, 5/8, 3/4, or 5/4.
[0208] Alternatively, after determining a weighted prediction parameter set for the current block, it is also possible to determine the weighted prediction parameter from at least one of the candidate weighted prediction parameters included in the set of determined weighted prediction parameters. The weighted set of prediction parameters can be determined in units of a block (for example, a tree unit of encoding, encoding unit, prediction unit, or transformation unit), or it can be determined in units of a slice or image.
[0209] For example, if one of the weighted prediction parameter sets w0 and w1 is selected, at least one of the candidate weighted prediction parameters included in the selected weighted prediction parameter set can be determined as the weighted prediction parameter for the block current. For example, it is assumed that "w0 = {-1/4, 1/4, 3/8, 1/2, 5/8, 3/4, 5/4}" and "w1 = {-3/8, 4, 3/8, 1/2, 5/8, 3/4} ". When the set of weighted prediction parameters w0 is selected, the weighted prediction parameter w of the current block can be determined as one of the candidate weighted prediction parameters -1/4, 1/4, 3/8, 1/2, 5 / 8, 3/4 and 5/4 included in w0.
[0210] The set of weighted prediction parameters available for the current block can be determined according to a temporal order or a temporal direction of the reference image used for bidirectional prediction. The temporal order may indicate an encoding / decoding order between images, or it may indicate an output order (eg, POC) of the images. In addition, the temporal direction can indicate whether the temporal order of the reference image is before or after the current image.
[0211] As an example, depending on whether two reference images used for bidirectional prediction have the same time order, the set of weighted prediction parameters available for the current image can be determined. For example, depending on whether the reference image L0 and the reference image L1 are the same image (that is, the temporal order of the images is the same) or whether the reference image L0 and the reference image L1 are different between yes (that is, the time orders of the images are different), the set of weighted prediction parameters available for the current block can be variably determined.
[0212] Different sets of weighted prediction parameters can mean that at least one of an absolute value, a sign, or a number of the set of weighted prediction parameters included in each set of weighted prediction parameters is different. For example, when the temporal directions of the reference image L0 and the reference image L1 are equal, the set of weighted prediction parameters w0 = {-1/4, 1/4, 3/8, 1/2, 5 / 8, 5/4} can be used, and when the temporary image directions reference LO and reference image L1 are different, the set of weighted prediction parameters w1 = {-3/8, -1/4, 1/4, 3/8, 1/2, 5/8, 3 / 4} can be used.
[0213] As an example, depending on whether the temporal directions of the two reference images used in the bidirectional prediction are the same or not, the set of weighted prediction parameters available for the current image can be determined. For example, the set of weighted prediction parameters available for the current block can be determined differently between when the temporal directions of the two reference images are the same and when the temporal directions of the two reference images are different. Specifically, the weighted prediction parameter of the current block can be determined differently according to whether the reference image L0 and the reference image L1 are prior to the current image or not, whether the reference image L0 and the reference image L1 are after the current picture or not, or whether the temporal directions of the L0 reference picture and the L1 reference picture are different or not.
[0214] The number of available candidate weighted prediction parameters or the number of available weighted prediction parameter sets can be adjusted differently for each block, each slice, or each image. For example, the number of available candidate weighted prediction parameters or the number of available weighted prediction parameter sets can be stated in units of a cutoff. Consequently, the number of available candidate weighted prediction parameters or the number of available weighted prediction parameter sets may be different for each cutoff.
[0215] The weighted prediction parameter can be derived from a scale block adjacent to the current block. Here, the near block adjacent to the current block may include at least one of a spatial near block or a temporary near block of the current block.
[0216] As an example, the current block weighted prediction parameter may be set to a minimum or maximum value among the nearby block weighted prediction parameters adjacent to the current block, or it may be set to an average value of nearby block weighted prediction parameters.
[0217] As an example, the weighted prediction parameter of the current block it can be derived from a nearby block located at a predetermined position between nearby blocks adjacent to the current block. Here, the predetermined position can be determined variably or fixedly. Specifically, the position of the near block is determined by a current block size (e.g. coding unit, prediction unit, or transformation unit), a current block position in the coding tree unit, a shape of the current block ( for example, current block division type), or current block division index. Alternatively, the position of the near block can be predefined in the encoder / decoder and fixedly determined.
[0218] As an example, the weighted prediction parameter of the current block can be derived from a close block to which the bidirectional weighted prediction is applied between neighboring blocks adjacent to the current block. Specifically, the weighted prediction parameter of the current block can be derived from a weighted prediction parameter of a first detected near block to which the bidirectional weighted prediction is applied when the near blocks adjacent to the current block are scanned in a predetermined order. FIG. 14 is a diagram illustrating a scan order between neighboring blocks. In FIG.
[0219] 14, the scanning is performed in the order of a left near block, an upper near block, an upper right near block, a lower left near block, and an upper left near block, but the present invention is not limited to the illustrated example. When scanning is performed following the predefined order, the weighted prediction parameter of the first near block detected with the bidirectional weighted prediction can be used as the weighted prediction parameter of the current block.
[0220] Alternatively, when the scan is performed in the predefined order, it is also possible to set the weighted prediction parameter of the first detected near block in which the weighted bidirectional prediction is applied as the weighted prediction parameter prediction value of the current block. In this case, the weighted prediction parameter of the current block can be obtained using the weighted prediction parameter prediction value and the weighted prediction parameter residual value.
[0221] As an example, it is also possible to derive the weighted prediction parameter of the current block from a near temporal or spatial block merged with motion information from the current block, or from a near temporal or spatial block used to derive a vector prediction value of movement of the current block.
[0222] It is also possible to signal information to determine the prediction parameter weighted through a bit rate. For example, the weighted prediction parameter of the current block can be determined based on at least one of information indicating a weighted prediction parameter value, index information that specifies one of candidate weighted prediction parameters, or set index information that specifies one of the weighted prediction parameter sets.
[0223] By binarizing and encoding weighted prediction parameters, the smallest binary code can be mapped to a weighted prediction parameter that is statistically most frequently used. For example, a truncated unary binarization can be performed on the weighted prediction parameter as shown in Table 1 below. Table 1 is an example in a case of cMax equal to 6.
[0224] T l 11
[0229] The truncated unary binarization method shown in Table 1 is basically the same as the unary binarization method except that a conversion is performed after receiving the maximum value (cMax) of the input in advance. Table 2 shows the truncated unary binarization with cMax equal to 13.
[0230] T l 21
[0234] During weighted prediction parameter binarization, it is also possible to use different binary codes depending on whether the temporal directions of the reference images used for bidirectional prediction are the same or not. For example, Table 3 illustrates binary codes according to whether the temporal addresses of the L0 reference picture and the L1 reference picture are the same or not.
[0235] T l 1
[0237]
[0239] It is also possible to determine the weighted prediction parameter of the current block according to a time order difference between the current picture and the reference picture. Here, the time order difference may indicate encoding / decoding order difference between pictures or output order difference between pictures (eg a POC difference value). For example, the weighted prediction parameter of the current image can be determined based on at least one of the difference value POC between the current image and the reference image L0 (hereinafter referred to as the first reference distance) and the difference value POC between the current image and the reference image L1 (hereinafter referred to as the second reference distance).
[0240] Specifically, the weighted prediction parameter of the current block can be determined based on a relationship between the first reference distance and the second reference distance. When the first reference distance is w and the second reference distance is h, w / (w + h) can be used as the weighted prediction parameter of the current block. For example, when the first reference distance and the second reference distance are equal, the weighted prediction parameter of the current block can be determined as 1/2. Also, when the first reference distance is 1 and the second reference distance is 3, the weighted prediction parameter of the current block can be determined as 1/4.
[0241] Alternatively, when the first reference distance is w and the second reference distance is h, it is also possible to use a candidate weighted prediction parameter that has a more similar value to w / (w + h) among the candidate weighted prediction parameters as the weighted prediction parameter of the current block.
[0242] Alternatively, it is also possible to binarize the weighted prediction parameter of the current block by considering the first reference distance and the second reference distance. Table 4 shows binary codes based on the first in the first reference distance and the second reference distance.
[0243] T l 41
[0247] In the example shown in Table 4, when the first reference distance and the second reference distance are equal, the probability that the weighted prediction parameter is set to 1/2 is high. As a result, the smallest code can be assigned to a medium when the first reference distance and the second reference distance are equal.
[0248] When the first reference distance and the second reference distance are different, the smaller binary code can be mapped to a weighted prediction parameter that is statistically the most frequently used. For example, when the first reference distance is greater than the second reference distance, the probability that a higher weight is assigned to the reference image L1 is high. Therefore, the smallest binary code can be mapped to the weighted prediction parameter greater than 1/2. On the other hand, when the first reference distance is smaller than the second reference distance, the probability that a higher weight is assigned to the reference image L0 is high. Therefore, the smallest binary code can be mapped to the weighted prediction parameter less than 1/2.
[0249] Compared to the example shown in Table 4, it is also possible map the smallest binary code to the weighted prediction parameter less than 1/2 when the first reference distance is greater than the second reference distance, and map the smallest binary code to the weighted prediction parameter greater than 1/2 when the first reference distance is less than the second reference distance.
[0250] Even if a current block is similar to a reference block in a reference image, if there is a change in brightness between a reference image and a previous image, the intra-prediction or inter-prediction efficiency may decrease. Accordingly, it is possible to consider lighting compensation to compensate for a prediction sample generated through intra-prediction or inter-prediction or a reconstructed reconstruction sample based on the prediction sample for the change in luminosity between the current image and the reference image. Lighting compensation can be performed by applying a lighting compensation weight and offset to an image that is encoded / decoded in intra-prediction or inter-prediction. For example, the lighting compensation prediction can be made based on Equation 3 below.
[0251] [Equation 3]
[0252] p ’= l x p f
[0253] In Equation 3, p can indicate the predicted sample encoded / decoded by the intra-prediction or inter-prediction. 1 indicates the lighting compensation weight, and f indicates the deviation. p 'may indicate a weighted prediction sample to which illumination compensation is applied.
[0254] It is also possible to apply the illumination compensation to the reconstruction sample obtained based on the encoded / decoded prediction sample in the intra-prediction or inter-prediction. Specifically, illumination compensation can be applied to the reconstruction sample before the loop filter is applied, or to the reconstruction sample after the loop filter is applied. In this case, in Equation 3, p can indicate the reconstruction sample and p 'can indicate a weighted reconstruction sample to which illumination compensation is applied.
[0255] A change in lighting can occur over the entire area of the current image or an image cut when compared to a previous image or a previous cut. Therefore, illumination compensation can be performed in units of a sequence, image, or slice.
[0256] Alternatively, the lighting change can occur only in a partial area within a cut or sequence when compared to a previous cut or sequence. Accordingly, illumination compensation can be performed in units of a predetermined area in an image or slice. That is, by determining whether or not lighting compensation is performed in units of a predetermined area, it is possible to perform lighting compensation only in a partial area, in which the lighting change occurs, in an image or a cut.
[0257] When lighting compensation is performed only for the predetermined area within an image or slice, the information for determining an area where lighting compensation is performed can be encoded / decoded. For example, information indicating a position of the area where lighting compensation is performed, a size of the area where lighting compensation is performed, or a shape of the area where lighting compensation is performed can be encoded / decoded.
[0258] Alternatively, it is also possible to encode / decode information indicating whether or not the lighting compensation is performed in units of a block. The information can be a 1-bit flag, but is not limited to this. For example, it can be determined whether or not lighting compensation is performed in units of a coding tree unit, coding unit, prediction unit or transformation unit. Accordingly, the information indicating whether or not lighting compensation is performed can be determined in units of a coding tree unit, coding unit, prediction unit, or transformation unit.
[0259] It is also possible to determine the area, in which the lighting compensation is performed, in an image or in a slice, and then determine whether to perform the lighting compensation for each block included in the area. For example, when the predetermined area includes a plurality of coding tree units, a plurality of coding units, a plurality of prediction units, or a plurality of transformation units, the information indicating whether or not the compensation of Lighting for each block included in the predetermined area can be pointed out. Accordingly, the lighting compensation can be performed selectively for each of the blocks included in the units to perform the lighting compensation.
[0260] Based on the above description, the prediction method of Illumination compensation according to the present invention will be described in detail.
[0261] FIG. 15 is a flow chart of a lighting compensation prediction method in accordance with the present invention.
[0262] First, a lighting compensation parameter for a current block can be determined S1510. The lighting compensation parameter may include at least one of a lighting compensation weight or an offset.
[0263] The illumination compensation parameter can be signaled through a bit rate in units of a sequence, a picture, a slice, or an encode / decode block. Here, the encoding / decoding block unit may represent at least one of a coding tree unit, coding unit, prediction unit or transformation unit.
[0264] As an alternative, it is also possible to set the lighting compensation parameter for each predetermined area where lighting compensation is performed. For example, the lighting compensation parameter can be set for a predetermined area that includes a plurality of blocks. The plurality of blocks included in the predetermined area can use the same lighting compensation parameter.
[0265] The lighting compensation parameter can be set independently of a current block encoding mode. Alternatively, it can be determined whether or not the lighting compensation parameter is set according to the coding module of the current block. For example, the lighting compensation parameter can be signaled only when the current block's encoding mode has a predefined mode. Here, the encoding mode can indicate whether the current block is encoded in intra-prediction (ie, intra-prediction mode) or if the current block is encoded in inter-prediction (ie, inter-prediction mode). For example, the lighting compensation parameter can be signaled only when the current block is coded by inter-prediction. Alternatively, it is also possible that the encoding mode may indicate one of a skip mode, blending mode, AMVP mode or a current picture reference mode, which are methods of interprediction of the current block. Here, the current image reference mode represents an inter-prediction method in which a current image including the current block is used as the reference image. When the current image reference mode is used, a prediction block of the current block can be derived from a reconstructed area prior to the current block. It is also possible to classify the current image reference modulus as an intra-prediction mode instead of an inter-prediction mode. Alternatively, the current image reference mode can be understood as an embodiment of a skip mode, a blend mode, or an AMVP mode.
[0266] As an example, when the current block is encoded with the current image reference mode or skip mode, the illumination compensation parameter may not be signaled. On the other hand, when the current block is encoded with the blending mode or AMVP mode, the lighting compensation parameter can be signaled through the bit rate. If the lighting compensation parameter is not set, lighting compensation for the current block may not be performed. Alternatively, if the lighting compensation parameter is not set, the lighting compensation of the current block can be performed using the lighting compensation parameter predefined in the encoder / decoder.
[0267] The illumination compensation parameter can be derived based on a change in illumination between a first template area in the current image and a second template area in the reference image. The first template area can be adjacent to the current block, and the second template area can be adjacent to the reference block. Here, the reference block is used to generate the prediction block of the current block, and it can be specified by a motion vector of the current block. Alternatively, the second template area may have a position co-located with the first template area in the reference image. The position of the second template area can be variably determined according to the reference image or encoding mode of the current block.
[0268] When an unavailable sample is included in the second template area, a replacement value can be assigned to the unavailable sample using an available sample. For example, the available sample can be copied to an unavailable sample position, or an interpolated value calculated using a plurality of available samples can be assigned to the unavailable sample position. The available sample can be included in the second template region or it can be located outside of the second template region. For example, the value of Replacement of the unavailable sample included in the second template area can be calculated based on the available sample included in the reference block. At least one of a filter coefficient, a shape, or the number of filter taps of a filter used in interpolation can be variably determined based on at least one of a size or shape of the template region.
[0269] The illumination compensation parameter can be calculated based on a difference value between samples included in the first template region and samples included in the second template region. For example, when a close sample from the current block is assumed to be yi (i is 0 to N-1) and a close sample from the reference block is assumed to be xi (i is 0 to N-1), the offset weight of Illumination 1 and the deviation f can be derived by calculating the minimum value of E (w, f), in Equation 4.
[0270] [Equation 4]
[0272]
[0274] Equation 4 can be modified as the following Equation 5.
[0275] [Equation 5]
[0277]
[0279] From Equation 5, Equation 6 to derive the lighting compensation weight 1 and Equation 7 to derive the deviation f can be derived.
[0280] [Equation 6]
[0281] ^ N Zpc jy rlpc ^ jy j + l
[0282] NZpcix i-'Zpc¡Lix i
[0283] [Equation 7]
[0284]
[0286] If the lighting compensation parameter is determined, the lighting compensation for the current block can be performed using the determined lighting compensation parameter S1520. Illumination compensation can be performed by applying the illumination compensation weighting and offset to a block (eg, prediction block or reconstruction block) that is encoded / decoded in intra-prediction or inter-prediction.
[0287] When the inter-prediction direction of the current block indicates a plurality of directions, compensation can be performed in at least one of a plurality of prediction blocks, and a multi-directional prediction can be performed in the current block based on the prediction block to which the illumination compensation is applied. For example, if the bidirectional weighted prediction is applied to the current block, lighting compensation can be performed on at least one of a first prediction block and a second prediction block and then a final predicted block or a bidirectionally predicted block of the current block. it can be generated based on the weighted sum operation between the first prediction block and the second prediction block.
[0288] FIG. 16 is a flow chart of a bidirectional weighted prediction method based on illumination compensation.
[0289] Referring to FIG. 16, first, it can be determined whether or not illumination compensation is performed on a reference image S1610. Whether or not illumination compensation is performed on the reference image can be determined based on information signaled through the bit rate. The information can be a 1-bit flag, but is not limited to this. For example, pred_ic_comp_flag can indicate whether or not lighting compensation is performed on the reference image.
[0290] If it is determined that the illumination compensation should be performed in a reference block, the reference image in which the illumination compensation is performed can be determined S1620. Specifically, when it is determined that lighting compensation is performed on the reference block, it is possible to determine whether lighting compensation is performed on a reference image L0 or lighting compensation is performed on a reference image L1. The determination can be made based on information signaled through the bit rate. Information can specify one of the reference images. Alternatively, the information can be a plurality of 1-bit flags indicating whether or not illumination compensation is performed on each reference image. For example, at least one of pred_ic_comp_10_enalbed_flag that indicates whether illumination compensation is performed for the L0 reference image or pred_ic_comp_11_enalged_flag that indicates whether illumination compensation is performed on the L1 reference image can be signaled via bit rate.
[0291] If the reference image in which the illumination compensation is performed is determined, a lighting compensation parameter to be applied to the reference image can be determined S1630. Since the determination of the illumination compensation parameter has been described in detail with reference to FIG. 15, a detailed description thereof will be omitted in this embodiment.
[0292] Based on the determined lighting compensation parameter, lighting compensation can be performed in a prediction block generated based on the reference image in which lighting compensation is performed S1640. Then, the bidirectional weighted prediction for the current block can be performed using the illumination compensated prediction block S1650.
[0293] FIG. 17 is a diagram illustrating an exemplary two-way weighted prediction embodiment using a prediction block in which illumination compensation is applied. In FIG. 17, it is illustrated that the illumination compensation has been performed in a prediction block generated based on the reference image L1. Accordingly, the bidirectional weighted prediction for the current block can be performed based on a weighted sum of a prediction block P0 generated based on the reference image L0 and the illumination compensated prediction block (1 * P1 + f) generated based on the reference image L1.
[0294] It is also possible to perform bidirectional weighted prediction for the current block based on a lighting compensation weight used for lighting compensation.
[0295] As an example, based on the lighting compensation weight, a weighted prediction parameter of the current block can be derived to perform the bidirectional weighted prediction on the current block. At this time, the weighted prediction parameter w of the current block can be set to the same value as the lighting compensation weight 1, or it can be set to (1-1). For example, when the lighting compensation based on the lighting compensation weight 1 is applied to the prediction block generated based on the reference image L0, the bidirectional weighted prediction for the current block can be calculated based on Equation 8 below.
[0296] [Equation 8]
[0297] As an example, it is also possible to perform the bidirectional weighted prediction of the current block, applying a weight determined by the weighted prediction parameter to one of the plurality of prediction blocks and applying the illumination compensation weight to the other. For example, the bidirectional weighted prediction for the current block can be calculated based on Equation 9 below.
[0298] [Equation 9]
[0303] Although the above-described embodiments have been described based on a series of steps or flow charts, they do not limit the time-series order of the invention, and can be performed simultaneously or in different orders as necessary. Furthermore, each of the components (eg, units, modules, etc.) that make up the block diagram in the above-described embodiments can be implemented by a hardware or software device, and a plurality of components. Or a plurality of components can be combined and implemented by a single hardware or software device. The above-described embodiments can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable computer medium. The computer-readable recording medium can include one or a combination of computer commands, data files, data structures, and the like. Examples of computer-readable media include magnetic media such as hard drives, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical discs, media, and hardware devices specifically configured for storing and executing program instructions such as ROM, RAM, flash memory, and the like. The hardware device can be configured to operate as one or more software models to perform the process according to the present invention and vice versa.
[0304] Industrial applicability
[0305] The present invention can be applied to electronic devices that are capable of encoding / decoding a video signal.
权利要求:
Claims (6)
[1]
1. A method for decoding a video, characterized in that the method comprises:
obtaining a first prediction block of a current block based on a motion vector L0 and a reference image L0 of the current block;
obtaining a second prediction block of the current block based on a motion vector L1 and a reference image L1 of the current block;
obtaining a third block from the current block based on a weighted sum operation of the first prediction block and the second prediction block; Y
obtain a reconstruction block of the current block by adding the third block and a residual sample,
wherein if a size of the current block does not satisfy a predefined condition, a first weight applied to the first prediction block and a second weight applied to the second prediction block are determined as a predetermined value;
wherein if the size of the current block satisfies the predefined condition, the first weight and the second weight are determined based on decoded index information of a bit stream, the index information indicating one among a plurality of weighted candidates, and
wherein a number of the weighted candidates selectable by the index information is determined depending on temporal addresses of the L0 reference picture and the L1 reference picture.
[2]
The method of claim 1, where the number of weighted candidates is different between when both temporal directions are after or before a current image and when one of the temporal directions is after the current image while the other is before the current image.
[3]
3. The method of claim 1, wherein the first weighting applied to the first prediction block is derived by subtracting the second weight from a constant value, and
wherein the second weight applied to the second prediction block is determined to be a weighted candidate specified by the index information.
[4]
4. A method for encoding a video, characterized in that the method comprises:
obtaining a first prediction block of a current block based on a motion vector L0 and a reference image L0 of the current block;
obtaining a second prediction block of the current block based on a motion vector L1 and a reference image L1 of the current block;
obtaining a bi-predicted block of the current block based on a weighted sum operation of the first prediction block and the second prediction block; Y
obtain a reconstruction block of the current block by adding the third block and a residual sample,
wherein if a current block size does not satisfy a predefined condition, a first weight applied to the first prediction block and a second weight applied to the second prediction block are determined as a predetermined value,
wherein if the size of the current block satisfies the predefined condition, the first weight and the second weight are determined based on one among a plurality of weighted candidates, index information indicating one among the plurality of weighted candidates being encoded in a stream of bits, and
wherein a number of the weighted candidates indicated by the indexed information is determined depending on temporal addresses of the L0 reference image and the L1 reference image.
[5]
The method of claim 4, wherein the number of weighted candidates is different between when both temporal directions are after or before a current image and when one of the temporary directions is after the current image, while the other is before the current image.
[6]
The method of claim 4, wherein the first weight applied to the first prediction block is derived by subtracting the second weight from a constant value, and
wherein the second weight applied to the second prediction block is determined to be a weighted candidate specified by the index information.
类似技术:
公开号 | 公开日 | 专利标题
ES2739668B1|2021-12-03|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNALS
ES2884375T3|2021-12-10|Intra linear model chroma prediction for video encoding
ES2703607B2|2021-05-13|Method and apparatus for processing video signals
ES2800509B1|2021-12-21|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNALS
ES2737845B2|2021-05-19|METHOD AND APPARATUS TO PROCESS VIDEO SIGNAL
ES2737874B2|2020-10-16|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
ES2892473T3|2022-02-04|Method and device for performing image decoding based on intra-prediction in image coding systems
ES2710234B1|2020-03-09|Procedure and device for processing video signals
ES2699691A2|2019-02-12|Video signal processing method and device
ES2719132B1|2020-05-05|Procedure and device to process video signals
ES2711474A2|2019-05-03|Method and device for processing video signal
ES2737843B2|2021-07-15|METHOD AND APPARATUS TO PROCESS A VIDEO SIGNAL
ES2699723A2|2019-02-12|Video signal processing method and device
KR20180059367A|2018-06-04|Method and apparatus for processing a video signal
ES2703458A2|2019-03-08|Video signal processing method and device
US20210195189A1|2021-06-24|Method and apparatus for processing video signal
ES2711230A2|2019-04-30|Method and apparatus for processing video signal
ES2711223A2|2019-04-30|Method and device for processing video signal
ES2711473A2|2019-05-03|Method and apparatus for processing video signal
ES2711209A2|2019-04-30|Method and device for processing video signal
KR20190139786A|2019-12-18|Method and apparatus for processing video signal
CN109417641B|2022-03-18|Method and apparatus for processing video signal
CN112106359A|2020-12-18|Method and apparatus for processing video signal
同族专利:
公开号 | 公开日
US10986358B2|2021-04-20|
EP3484159A4|2019-12-04|
KR20180005120A|2018-01-15|
CN113473122A|2021-10-01|
ES2699725A2|2019-02-12|
ES2737845R1|2020-06-03|
CN113905238A|2022-01-07|
ES2737845B2|2021-05-19|
CN109417640A|2019-03-01|
ES2737845A2|2020-01-16|
US20190313113A1|2019-10-10|
ES2699725R1|2019-04-23|
ES2699725B2|2021-03-12|
CN113965747A|2022-01-21|
WO2018008905A1|2018-01-11|
US20210289223A1|2021-09-16|
CN109417640B|2021-08-17|
EP3484159A1|2019-05-15|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

CN101023673B|2004-09-16|2011-06-08|汤姆逊许可证公司|Video codec with weighted prediction utilizing local brightness variation|
EP2200323A4|2007-09-25|2012-03-14|Sharp Kk|Moving image encoder and moving image decoder|
ES2634162T3|2007-10-25|2017-09-26|Nippon Telegraph And Telephone Corporation|Scalable video coding method and decoding methods that use weighted prediction, devices for it, programs for it, and recording medium where the program is recorded|
US9161057B2|2009-07-09|2015-10-13|Qualcomm Incorporated|Non-zero rounding and prediction mode selection techniques in video encoding|
CA3082413C|2011-04-25|2022-01-25|Lg Electronics Inc.|Intra-prediction method, and video encoder and decoder using same|
KR101444675B1|2011-07-01|2014-10-01|에스케이 텔레콤주식회사|Method and Apparatus for Encoding and Decoding Video|
PL3197164T3|2011-10-17|2021-04-19|Kabushiki Kaisha Toshiba|Decoding apparatus and decoding method|
KR101418096B1|2012-01-20|2014-07-16|에스케이 텔레콤주식회사|Video Coding Method and Apparatus Using Weighted Prediction|
BR112015006178A2|2012-09-21|2017-07-04|Nokia Technologies Oy|method; appliance; and computer program product|
US9667942B2|2012-11-20|2017-05-30|Qualcomm Incorporated|Adaptive luminance compensation in three dimensional video coding|
US9948951B2|2012-12-26|2018-04-17|Sharp Kabushiki Kaisha|Image decoding device which generates a predicted image of a target prediction unit|
US9357211B2|2012-12-28|2016-05-31|Qualcomm Incorporated|Device and method for scalable and multiview/3D coding of video information|
JP6114404B2|2013-01-08|2017-04-12|エルジー エレクトロニクス インコーポレイティド|Video signal processing method and apparatus|
CN105103552B|2013-01-10|2019-04-05|三星电子株式会社|Method and device thereof for the method and device thereof of compensation brightness difference encoded to cross-layer video and for being decoded to video|
US9491460B2|2013-03-29|2016-11-08|Qualcomm Incorporated|Bandwidth reduction for video coding prediction|
US9961347B2|2013-04-10|2018-05-01|Hfi Innovation Inc.|Method and apparatus for bi-prediction of illumination compensation|
KR102105323B1|2013-04-15|2020-04-28|인텔렉추얼디스커버리 주식회사|A method for adaptive illuminance compensation based on object and an apparatus using it|
US9860529B2|2013-07-16|2018-01-02|Qualcomm Incorporated|Processing illumination compensation for video coding|
US10218957B2|2014-06-20|2019-02-26|Hfi Innovation Inc.|Method of sub-PU syntax signaling and illumination compensation for 3D and multi-view video coding|
US10666940B2|2014-11-06|2020-05-26|Samsung Electronics Co., Ltd.|Video encoding method and apparatus, and video decoding method and apparatus|
US10356416B2|2015-06-09|2019-07-16|Qualcomm Incorporated|Systems and methods of determining illumination compensation status for video coding|
CN108781283A|2016-01-12|2018-11-09|瑞典爱立信有限公司|Use the Video coding of mixing intra prediction|
US10750203B2|2016-12-22|2020-08-18|Mediatek Inc.|Method and apparatus of adaptive bi-prediction for video coding|
US10547835B2|2018-06-22|2020-01-28|Tencent America LLC|Techniques for signaling prediction weights in video coding|WO2018030773A1|2016-08-11|2018-02-15|한국전자통신연구원|Method and apparatus for image encoding/decoding|
WO2018056763A1|2016-09-23|2018-03-29|엘지전자|Method and apparatus for performing prediction using template-based weight|
KR20200057082A|2017-10-09|2020-05-25|애리스 엔터프라이지즈 엘엘씨|Adaptive non-equal weighted plane prediction|
US10735721B2|2018-04-17|2020-08-04|Panasonic Intellectual Property Corporation Of America|Encoder, decoder, encoding method, and decoding method using local illumination compensation|
WO2020254500A1|2019-06-21|2020-12-24|Interdigital Vc Holdings France, Sas|Local illumination compensation flag inheritance|
法律状态:
2021-06-02| BA2A| Patent application published|Ref document number: 2830053 Country of ref document: ES Kind code of ref document: A2 Effective date: 20210602 |
优先权:
申请号 | 申请日 | 专利标题
KR20160085014|2016-07-05|
[返回顶部]